void main() {
  //语义版本号 Semantic Versioning(https://www.jianshu.com/p/e2619a7aa60e)
  //X.Y.Z (Major.Minor.Patch).
  //1、Patch: Bug fixes not affecting the API increment the patch version,
  //2、Minor: backwards compatible API additions/changes increment the minor version,
  //3、Major: backwards incompatible API changes increment the major versio
  //4、一个预发布版本 可以 通过在补丁版本号后面追加一个短线, 以及一系列的用点分割的标识符来描述.标识符必须仅包含ASCII的阿拉伯数字和短线 [0-9A-Za-z-].
  //   标识符必须不为空, 数字标识符不能包含前导零，例子: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92
  //5、编译时的附加信息,可以通过在补丁版本号后面追加一个加号,以及一系列的用点分割的标识符来描述.
  //   标识符必须仅包含ASCII 的 阿拉伯数字和短线 [0-9A-Za-z-]. 标识符 必须不 为空. 在比较版本优先级的时候,
  //   编译附加信息 应该 被忽略. 因此, 两个只有编译附加信息不同的版本, 具有相同的优先级. 编译附加信息的
  //   举例: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.
  //
  //6、X=0,意味非稳定版本，比较第二位
  //7、dart caret(脱字号)语法是 dart 1.8.3 才开始引入的，^ 开头的版本表示 和当前版本接口保持兼容的最新版
  //   ^1.2.3 等效于 >=1.2.3 <2.0.0  http: ^1.2.3  或者 http: '>=1.2.3 <2.0.0'
  //   ^0.1.2 等效于 >=0.1.2 <0.2.0  http: ^0.1.2  或者 http: '>=0.1.2 <0.2.0'
  //8、依赖形式包括以下：
  //    1.any 不指定版本，不推荐
  //    2.1.2.3 确定的版本号
  //    3.>=1.2.3 和 >1.2.3
  //    4.<=1.2.3 和 <1.2.3
  //9、pubspec.yaml，在该文件中声明所有依赖
  //10、声明好依赖后，再app路径下运行pub get，拉去依赖，ideal有插件能显示需要拉取
  //11、最后，pub会创建pubspec.lock文件，它记录了当前应用直接或间接依赖的所有包及其当前使用的版本
  //12、依赖类型：
  //    1、sdk用于声明flutter
  //    2、hosted package用于声明放在官方pub.dev的库
  //    3、git git仓库
  //    4、path 本地包
  //13、依赖环境
  //    1、dependencies 正式环境
  //    2、dev_dependencies dev环境的依赖
  //    3、dependency_overrides 还没搞懂
}

